#include<stdio.h>
#include<signal.h>




volatile int quit = 0; // 保证内存可见性
//int quit=0;

void handler(int signo)
{
    printf("change quit from 0 to 1\n");
    quit = 1;
    printf("quit : %d\n", quit);
}

int main()
{
    signal(2, handler);

    while(!quit); //注意这里故意没有携带while的代码块，故意让编译器认为在main中，quit只会被检测

    printf("main quit 正常\n");

    return 0;
}